Publier une vidéo et ses slides depuis Big Blue Button

samedi 9 janvier 2021, par Jean-Philippe Gaulier

Alors que beaucoup de monde a découvert le télétravail suite à la pandémie, on a vu fleurir de nombreuses solutions de visioconférence dont la très connue zoom, mais également le logiciel libre Jitsi. Un troisième outil, un peu plus confidentiel a néanmoins su tirer son épingle du jeu, c’est Big Blue Button également connu en tant que BBB. Ce logiciel libre, initialement destiné à l’enseignement, répond également aux besoins quotidiens standards d’une entreprise ou d’une association. Dans le cadre de l’OSSIR, association qui s’intéresse à la cybersécurité, les réunions distancielles entre membres s’effectuent grâce à BBB. Nous avons eu le plaisir de pouvoir héberger des réunions comptant plus de 80 personnes sans trop de souci.

Le logiciel évolue, mais il a encore quelques petites lacunes qui créent un petit manque dans l’expérience utilisateur. Pour notre usage, c’est la récupération des vidéos à fin de publication sur Youtube ou Peertube qui fait défaut. En effet, BBB enregistre les présentations, se paye le luxe de faire de la synchro de diapositives et de vidéos, mais ne met pas à disposition de format vidéo global rassemblant tout cela.

Nous vous proposons ici de régler cette petite absence avec le formidable bbb-render qui vient vous donner la solution !

Pour cela, il faut être équipé d’un système d’exploitation linux et taper les commandes qui suivent dans un terminal.

Tout d’abord il faut installer quelques paquets qui vous seront utiles par la suite : sudo apt install python3-gi gir1.2-ges-1.0 ges1.0-tools

On récupère ensuite l’utilitaire bbb-render depuis son dépôt git : git clone https://github.com/plugorgau/bbb-render

Pour les personnes qui souhaitent une installation un peu plus poussée, on notera de déplacer les scripts dans le répertoire */usr/bin/*

Pour ce qui nous concerne, nous travaillerons dans le répertoire courant de l’application : cd bbb-render/

On lance le script de récupération qui va chercher tous les éléments de la vidéo enregistrée sur votre service BBB : ./download.py https://monsite-BBB.fr/playback/presentation/2.0/playback.html?meetingId=2e3b70b57a345bbc78ab20ce9c93f672d03-16199282423655 destination/

Le script va télécharger tous les fichiers en relation avec votre enregistrement et les copier dans le répertoire "destination". Voici les fichiers que vous devriez retrouver :

$ lscaptions.json  cursor.xml  deskshare  deskshare.xml  metadata.xml  panzooms.xml  presentation  presentation_text.json  shapes.svg  slides_new.xml  video

A noter que si vous ne souhaitez pas voir apparaître le chat, il suffit de supprimer le fichier slides_new.xml.

On va ensuite générer un fichier au format "xges" qui permettra de construire la vidéo : ./make-xges.py destination presentation.xges

Pour finir, on lance la conversion au format mp4 : ges-launch-1.0 --load presentation.xges -o 2020111001.mp4

Dans notre exemple, nous n’affichons pas de logo, mais sachez qu’il est possible d’insérer le logo ou background de votre choix avec l’option *—backdrop=FILE* . N’hésitez pas à consulter la documentation sur le dépôt git pour découvrir les autres options utiles.

Il y a un comportement qui diffère également d’autres plate-formes lorsque l’on enregistre une vidéo sur BBB. En effet, lorsque l’on met l’enregistrement en pause, au lieu de créer un fichier, il attend que vous terminiez la session de visio. Dans le cas de l’OSSIR, cela veut dire qu’au lieu d’avoir une conférence par vidéo, on se retrouve avec 3 conférences d’affilée. En fonction de vos usages, cela peut être embêtant, mais pas insurmontable. En effet, le formidable ffmpeg vient à notre rescousse !

Dans cet exemple, sur 2h30 de vidéo, nous allons indiquer que nous ne souhaitons prendre que la première conférence qui commence après 1 seconde de vidéo et qui s’arrète au bout de 1h02m56s :

ffmpeg -ss 00:00:01 -i 2020111001.mp4 -t 01:02:56 -c copy premiere_conf.mp4

En utilisant l’option copy, ffmpeg ne réencode pas la vidéo, ce qui vous donne un résultat immédiat. Toute personne manipulant de la vidéo sait ô combien cette fonctionnalité peut être utile...

Nous vous proposons une dernière astuce. Il arrive que les présentateurs n’utilisent pas le même format de diffusion, ce qui peut créer des bandes noires autour de vos vidéos. Là encore ffmpeg vient répondre au problème.

On va dans un premier temps lui demander de détecter le format utile de la vidéo : ffmpeg -i premiere_conf.mp4 -t 1 -vf cropdetect -f null - 2>&1|awk '/crop/ {print $NF }' | tail -1

qui donne pour résultat : crop=1920:800:0 :6

On lance alors ffmpeg qui va encoder de nouveau la vidéo avec la bonne définition :

ffmpeg -i premiere_conf.mp4 -vf "crop=1920:800:0:6" premiere_conf_bonformat.mp4

Et voilà le travail !

Vous êtes intéressé pour avoir une instance Big Blue Button ? Contactez-nous !